package com.yunkeji.system.domain.bo;

import com.yunkeji.common.core.domain.BaseEntity;
import com.yunkeji.common.core.validate.AddGroup;
import com.yunkeji.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 用户登录信息业务对象 ykj_user_login_log
 *
 * @author zhang
 * @date 2024-07-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserLoginLogBo extends BaseEntity {

    /** */
    @NotNull(
            message = "不能为空",
            groups = {EditGroup.class})
    private Long id;

    /** 用户id，关联用户表 */
    @NotNull(
            message = "用户id，关联用户表不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Long userId;

    /** 登录时间戳 */
    @NotNull(
            message = "登录时间戳不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Long loginTime;

    /** 客户端类型 */
    @NotNull(
            message = "客户端类型不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Integer plat;

    /** 登陆渠道号 */
    @NotNull(
            message = "登陆渠道号不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Integer agent;

    /** 自增版本号 */
    @NotNull(
            message = "自增版本号不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Long versionIndex;

    /** 商家，1无，2华为，3vivo，4oppo，5小米 */
    @NotNull(
            message = "商家，1无，2华为，3vivo，4oppo，5小米不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Integer merchants;

    /** 手机型号 */
    @NotBlank(
            message = "手机型号不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private String model;

    /** 设备唯一标识符 */
    @NotBlank(
            message = "设备唯一标识符不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private String deviceToken;

    /** 登录ip */
    @NotBlank(
            message = "登录ip不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private String addr;

    /** 城市代码 */
    @NotBlank(
            message = "城市代码不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private String cityCode;

    /** mo聊省份 */
    @NotBlank(
            message = "mo聊省份不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private String moProvince;
}
